package com.chushouya.product.service.admin;


import com.general.framework.core.schema.PageResult;
import com.chushouya.product.dto.admin.category.CategoryBindBrandDTO;
import com.chushouya.product.dto.admin.category.CategoryBrandListDTO;
import com.chushouya.product.dto.admin.category.CategoryToBindQuery;

import java.util.List;

/**
 * 商品分类关联品牌业务
 */
public interface CategoryBrandService {

    /**
     * 给分类授权品牌
     * @param categoryId 分类ID
     * @param brandId 品牌ID
     * @return 数据ID
     */
    Long bind(Long categoryId, Long brandId);

    /**
     * 删除商品分类关联品牌
     * @param categoryBrandId 商品分类关联品牌Id
     */
    void cancelBind(Long categoryBrandId);

    /**
     * 查询分类品牌
     * @param categoryId 分类ID
     */
    List<CategoryBrandListDTO> listCategoryBrand(Long categoryId, String brandName);

    /**
     * 是否有分类关联品牌
     * @param brandId 品牌ID
     */
    Boolean hasCategoryBindBrand(Long brandId);
    /**
     * 是否有品牌关联分类
     * @param categoryId 分类ID
     */
    Boolean hasBrandBindCategory(Long categoryId);

    /**
     * 待绑定品牌
     */
    PageResult<CategoryBindBrandDTO> selectCategoryToBindBrands(CategoryToBindQuery query);

    Long editSort(Long bindId, Integer sort);
}
